/*
 * @lc app=leetcode.cn id=459 lang=typescript
 *
 * [459] 重复的子字符串
 */

// @lc code=start
// TODO 情况过于复杂
function repeatedSubstringPattern(s: string): boolean {
    if (s.length === 1) return false;
    for (let index = 1; index < s.length; index++) {
        const element = s[index];
        // 找到每一个与头部相同的数据，并开始查看是否为字串
        if (element === s[0]) {
            if (s.slice(0, index) === s.slice(index, 2 * index)) {
                if (checkRepeat(s.slice(0, index), s)) return true;
            }
        }
    }
    return false;
}

// 检查是否为重复子串
const checkRepeat = (repeat: string, s: string) => {
    if (s.length % repeat.length) {
        return false;
    }
    let count = s.length / repeat.length;
    while (count) {
        count--;
        if (
            s.slice(repeat.length * count, repeat.length * (count + 1)) !==
            repeat
        ) {
            return false;
        }
    }
    return true;
};
// @lc code=end
